home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / comp0_89.lha / Feel / Boot / CBoot / table.em < prev    next >
Text File  |  1993-06-30  |  1KB  |  64 lines

  1. ;; Eulisp Module
  2. ;; Author: pab
  3. ;; File: table.em
  4. ;; Date: Wed Jun 30 12:46:18 1993
  5. ;;
  6. ;; Project:
  7. ;; Description: 
  8. ;;
  9.  
  10. (defmodule table
  11.   (gens init extras0 macros0 defs
  12.     )
  13.   ()
  14.   
  15.   (export tablep table-ref setter-table-ref)
  16.  
  17.   (defpredicate tablep <table>)
  18.  
  19.   (defgeneric table-ref (table key)
  20.     method (((x <table>) key)
  21.         (sys-table-ref x key)))
  22.  
  23.   (defgeneric setter-table-ref (table key value)
  24.     method (((x <table>) key value)
  25.         ((setter sys-table-ref) x key value)))
  26.   
  27.   ((setter setter) table-ref setter-table-ref)
  28.  
  29.   (defmethod initial-state ((t <table>)) (table-keys t))
  30.  
  31.   (defmethod next-state ((t <table>) (s <null>)) ())
  32.  
  33.   (defmethod next-state ((t <table>) (s <pair>)) (cdr s))
  34.  
  35.   (defmethod final-state ((t <table>)) (table-keys t))
  36.  
  37.   (defmethod previous-state ((t <table>) (s <null>)) ())
  38.  
  39.   (defmethod previous-state ((t <table>) (s <pair>)) (cdr s))
  40.  
  41.   (defmethod current-element ((t <table>) (s <pair>)) (table-ref t (car s)))
  42.  
  43.   (defmethod current-key ((t <table>) (s <pair>)) (car s))
  44.  
  45.   (defmethod key-sequence ((t <table>)) (table-keys t))
  46.  
  47.   (defmethod element ((t <table>) k)
  48.     (table-ref t k))
  49.  
  50.   (defmethod (setter element) ((t <table>) k v)
  51.     ((setter table-ref) t k v))
  52.  
  53.   (defmethod size ((t <table>)) (table-population t))
  54.  
  55.   (defmethod clone ((tab <table>))
  56.     (make <table> 
  57.       'hash-function (table-hash-function tab)
  58.       'comparator (table-comparator tab)))
  59.  
  60.  
  61.  
  62.   ;; end module
  63.   )
  64.